home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1997 February
/
EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso
/
enigma
/
earcd
/
sviluppo
/
svilupp2
/
muiclstr.lha
/
txt
/
MCCListtree.def
next >
Wrap
Text File
|
1995-12-19
|
18KB
|
453 lines
|##########|
|#MAGIC #|DNEIEICJ
|#PROJECT #|"Mui"
|#PATHS #|"StdProject"
|#FLAGS #|xx---x--xxx---x-----------------
|#USERSW #|--------------------------------
|#USERMASK#|--------------------------------
|#SWITCHES#|xx----xxxx-xx---
|##########|
DEFINITION MODULE MCCListtree;
(*------------------------------------------
:Module. MCCListtree.mod
:Author. Henning Thielemann
:Address. Veilchenweg 34, 06118 Halle, Germany
:EMail. henning.thielemann@student.uni-halle.de
:Version. $VER: MCCListtree.mod 12.0 (30.04.96)
:Copyright. Henning Thielemann
:Language. Cluster
:Translator. Amiga Cluster V2.0
:Contents. Interface for Klaus Melchior's Mui Custom Class Listtree
:Bugs. No warranty given for completeness, expect changes!
:Usage. <Angaben zur Anwendung>
:History. 3.1 [ht] 30-Apr-1996 : initial version
--------------------------------------------*)
FROM SYSTEM IMPORT SysStringPtr;
FROM Utility IMPORT HookPtr;
FROM MuiO IMPORT ListRec, MethodID, MsgRoot, MuiTagAPtr, MuiTags,
CBOOLEAN;
(*
** $VER: MCCListtree.def (30.04.96)
**
** Listtree.mcc (c) by kMel, Klaus Melchior
**
** Registered class of the Magic User Interface.
**
** Cluster interface by Henning Thielemann <thielemann@biochemtech.uni-halle.de>
** mostly untested, report bugs to the above address.
**
*)
TYPE
ListtreeRec = RECORD OF ListRec END;
ListtreeObject = POINTER TO ListtreeRec;
TreeNodeFlags = (open, list, freeze, nosign, ltnf4, ltnf5, ltnf6, ltnf7,
ltnf8, ltnf9, ltnf10, ltnf11, ltnf12, ltnf13, ltnf14, ltnf15);
TreeNodeFlagSet = SET OF TreeNodeFlags;
TreeNodePtr = POINTER TO TreeNode;
TreeNode = RECORD
private : ARRAY [2] OF LONGINT;
name : SysStringPtr;
flags : TreeNodeFlagSet;
user : ANYPTR;
END; (* RECORD *)
CONST
cListtree = "Listtree.mcc";
closeListNodeRoot = TreeNodePtr( 0);
closeListNodeParent = TreeNodePtr(-1);
closeListNodeActive = TreeNodePtr(-2);
closeTreeNodeHead = TreeNodePtr( 0);
closeTreeNodeTail = TreeNodePtr(-1);
closeTreeNodeActive = TreeNodePtr(-2);
closeTreeNodeAll = TreeNodePtr(-3);
exchangeListNode1Root = TreeNodePtr( 0);
exchangeListNode1Active = TreeNodePtr(-2);
exchangeTreeNode1Head = TreeNodePtr( 0);
exchangeTreeNode1Tail = TreeNodePtr(-1);
exchangeTreeNode1Active = TreeNodePtr(-2);
exchangeListNode2Root = TreeNodePtr( 0);
exchangeListNode2Active = TreeNodePtr(-2);
exchangeTreeNode2Head = TreeNodePtr( 0);
exchangeTreeNode2Tail = TreeNodePtr(-1);
exchangeTreeNode2Active = TreeNodePtr(-2);
exchangeTreeNode2Up = TreeNodePtr(-5);
exchangeTreeNode2Down = TreeNodePtr(-6);
findNameListNodeRoot = TreeNodePtr( 0);
findNameListNodeActive = TreeNodePtr(-2);
getEntryListNodeRoot = TreeNodePtr( 0);
getEntryListNodeActive = TreeNodePtr(-2);
getEntryPositionHead = 0;
getEntryPositionTail = -1;
getEntryPositionActive = -2;
getEntryPositionNext = -3;
getEntryPositionPrevious = -4;
getEntryPositionParent = -5;
getNrTreeNodeActive = TreeNodePtr(-2);
insertListNodeRoot = TreeNodePtr( 0);
insertListNodeActive = TreeNodePtr(-2);
insertPrevNodeHead = TreeNodePtr( 0);
insertPrevNodeTail = TreeNodePtr(-1);
insertPrevNodeActive = TreeNodePtr(-2);
insertPrevNodeSorted = TreeNodePtr(-4);
moveOldListNodeRoot = TreeNodePtr( 0);
moveOldListNodeActive = TreeNodePtr(-2);
moveOldTreeNodeHead = TreeNodePtr( 0);
moveOldTreeNodeTail = TreeNodePtr(-1);
moveOldTreeNodeActive = TreeNodePtr(-2);
moveNewListNodeRoot = TreeNodePtr( 0);
moveNewListNodeActive = TreeNodePtr(-2);
moveNewTreeNodeHead = TreeNodePtr( 0);
moveNewTreeNodeTail = TreeNodePtr(-1);
moveNewTreeNodeActive = TreeNodePtr(-2);
moveNewTreeNodeSorted = TreeNodePtr(-4);
openListNodeRoot = TreeNodePtr( 0);
openListNodeParent = TreeNodePtr(-1);
openListNodeActive = TreeNodePtr(-2);
openTreeNodeHead = TreeNodePtr( 0);
openTreeNodeTail = TreeNodePtr(-1);
openTreeNodeActive = TreeNodePtr(-2);
openTreeNodeAll = TreeNodePtr(-3);
removeListNodeRoot = TreeNodePtr( 0);
removeListNodeActive = TreeNodePtr(-2);
removeTreeNodeHead = TreeNodePtr( 0);
removeTreeNodeTail = TreeNodePtr(-1);
removeTreeNodeActive = TreeNodePtr(-2);
removeTreeNodeAll = TreeNodePtr(-3);
renameTreeNodeActive = TreeNodePtr(-2);
setDropMarkEntryNone = -1;
TYPE
SetDropMarks = (none, above, below, onto, sorted, makeLong = $10000);
CloseFlags = (visible = 14, nr, makeLong=31);
CloseFlagSet = SET OF CloseFlags;
ExchangeFlagSet = System.LONGSET;
FindNameFlags = (visible = 14, sameLevel, makeLong=31);
FindNameFlagSet = SET OF FindNameFlags;
GetEntryFlags = FindNameFlags;
GetEntryFlagSet = FindNameFlagSet;
GetNrFlags = (listEmpty = 12, countList, countLevel, countAll, makeLong=31);
GetNrFlagSet = SET OF GetNrFlags;
InsertFlags = (open, list, freeze, nosign,
nextNode = 12, active, visible, nr, makeLong=31);
InsertFlagSet = SET OF InsertFlags;
OpenFlags = CloseFlags;
OpenFlagSet = CloseFlagSet;
MoveFlags = CloseFlags;
MoveFlagSet = CloseFlagSet;
RemoveFlags = CloseFlags;
RemoveFlagSet = CloseFlagSet;
RenameFlags = (user = 8, makeLong = 31);
RenameFlagSet = SET OF RenameFlags;
DoubleClick = (tree = -3, all, off);
CONST
activeOff = 0;
constructHookString = HookPtr(-1);
destructHookString = HookPtr(-1);
displayHookDefault = HookPtr(-1);
sortHookHead = HookPtr( 0);
sortHookTail = HookPtr(-1);
sortHookLeavesTop = HookPtr(-2);
sortHookLeavesMixed = HookPtr(-3);
sortHookLeavesBottom = HookPtr(-4);
mListtreeClose = MethodID($8002001F);
mListtreeExchange = MethodID($80020008);
mListtreeFindName = MethodID($8002003C);
mListtreeGetEntry = MethodID($8002002B);
mListtreeGetNr = MethodID($8002000E);
mListtreeInsert = MethodID($80020011);
mListtreeMove = MethodID($80020009);
mListtreeOpen = MethodID($8002001E);
mListtreeRemove = MethodID($80020012);
mListtreeRename = MethodID($8002000C);
mListtreeSetDropMark = MethodID($8002004C);
mListtreeTestPos = MethodID($8002004B);
aListtreeActive = LONGCARD($80020020);
aListtreeCloseHook = LONGCARD($80020033);
aListtreeConstructHook = LONGCARD($80020016);
aListtreeDestructHook = LONGCARD($80020017);
aListtreeDisplayHook = LONGCARD($80020018);
aListtreeDoubleClick = LONGCARD($8002000D);
aListtreeDragDropSort = LONGCARD($80020031);
aListtreeDuplicateNodeName = LONGCARD($8002003D);
aListtreeEmptyNodes = LONGCARD($80020030);
aListtreeFormat = LONGCARD($80020014);
aListtreeOpenHook = LONGCARD($80020032);
aListtreeQuiet = LONGCARD($8002000A);
aListtreeSortHook = LONGCARD($80020010);
aListtreeTitle = LONGCARD($80020015);
aListtreeTreeColumn = LONGCARD($80020013);
TYPE
ListtreeTags = TAGS OF MuiTags
listtreeActive = $80020020 : TreeNodePtr;
listtreeCloseHook = $80020033 : HookPtr;
listtreeConstructHook = $80020016 : HookPtr;
listtreeDestructHook = $80020017 : HookPtr;
listtreeDisplayHook = $80020018 : HookPtr;
listtreeDoubleClickColumn = $8002000D : LONGINT;
listtreeDoubleClick = $8002000D : DoubleClick;
listtreeDragDropSort = $80020031 : CBOOLEAN;
listtreeDuplicateNodeName = $8002003D : CBOOLEAN;
listtreeEmptyNodes = $80020030 : CBOOLEAN;
listtreeFormat = $80020014 : SysStringPtr;
listtreeOpenHook = $80020032 : HookPtr;
listtreeQuiet = $8002000A : CBOOLEAN;
listtreeSortHook = $80020010 : HookPtr;
listtreeTitle = $80020015 : SysStringPtr;
listtreeTitleMultiColumn = $80020015 : CBOOLEAN;
listtreeTreeColumn = $80020013 : LONGCARD;
END;
ListtreeTagAPtr = POINTER TO ARRAY OF ListtreeTags;
pListtreeClosePtr = POINTER TO pListtreeClose;
pListtreeClose = RECORD OF MsgRoot
listNode,
treeNode : TreeNodePtr;
flags : CloseFlagSet;
END; (* RECORD *)
pListtreeExchangePtr = POINTER TO pListtreeExchange;
pListtreeExchange = RECORD OF MsgRoot
listNode1,
treeNode1,
listNode2,
treeNode2 : TreeNodePtr;
flags : ExchangeFlagSet;
END; (* RECORD *)
pListtreeFindNamePtr = POINTER TO pListtreeFindName;
pListtreeFindName = RECORD OF MsgRoot
listNode : TreeNodePtr;
name : SysStringPtr;
flags : FindNameFlagSet;
END; (* RECORD *)
pListtreeGetEntryPtr = POINTER TO pListtreeGetEntry;
pListtreeGetEntry = RECORD OF MsgRoot
node : TreeNodePtr;
position : LONGINT;
flags : GetEntryFlagSet;
END; (* RECORD *)
pListtreeGetNrPtr = POINTER TO pListtreeGetNr;
pListtreeGetNr = RECORD OF MsgRoot
treeNode : TreeNodePtr;
flags : GetNrFlagSet;
END; (* RECORD *)
pListtreeInsertPtr = POINTER TO pListtreeInsert;
pListtreeInsert = RECORD OF MsgRoot
name : SysStringPtr;
user : ANYPTR;
listNode : TreeNodePtr;
IF KEY : InsertFlags
OF nr THEN prevPos : LONGINT;
ELSE prevNode : TreeNodePtr;
END;
flags : InsertFlagSet;
END; (* RECORD *)
pListtreeMovePtr = POINTER TO pListtreeMove;
pListtreeMove = RECORD OF MsgRoot
oldListNode,
oldTreeNode,
newListNode,
newTreeNode : TreeNodePtr;
flags : MoveFlagSet;
END; (* RECORD *)
pListtreeOpenPtr = POINTER TO pListtreeOpen;
pListtreeOpen = RECORD OF MsgRoot
listNode,
treeNode : TreeNodePtr;
flags : OpenFlagSet;
END; (* RECORD *)
pListtreeRemovePtr = POINTER TO pListtreeRemove;
pListtreeRemove = RECORD OF MsgRoot
listNode,
treeNode : TreeNodePtr;
flags : RemoveFlagSet;
END; (* RECORD *)
pListtreeRenamePtr = POINTER TO pListtreeRename;
pListtreeRename = RECORD OF MsgRoot
treeNode : TreeNodePtr;
newName : SysStringPtr;
flags : RenameFlagSet;
END; (* RECORD *)
pListtreeSetDropMarkPtr = POINTER TO pListtreeSetDropMark;
pListtreeSetDropMark = RECORD OF MsgRoot
entry : LONGINT;
values : SetDropMarks;
END; (* RECORD *)
pListtreeTestPosPtr = POINTER TO pListtreeTestPos;
pListtreeTestPos = RECORD OF MsgRoot
x, y : LONGINT;
result : POINTER TO TestPosResult;
END; (* RECORD *)
TestPosResultFlags = (none, above, below, onto, sorted, makeWord = $100);
TestPosResultPtr = POINTER TO TestPosResult;
TestPosResult = RECORD
treeNode : TreeNodePtr;
flags : TestPosResultFlags;
listEntry : LONGINT;
listFlags : CARDINAL;
END; (* RECORD *)
PROCEDURE MakeListtreeObjectA (tags : ListtreeTagAPtr) : ListtreeObject;
PROCEDURE MakeListtreeObject (tags : LIST OF ListtreeTags) : ListtreeObject;
METHOD Close (o : ListtreeObject; listNode, treeNode : TreeNodePtr; flags := CloseFlagSet : {});
METHOD Exchange (o : ListtreeObject; listNode1, treeNode1,
listNode2, treeNode2 : TreeNodePtr; flags := ExchangeFlagSet : {});
METHOD FindName (o : ListtreeObject; listNode : TreeNodePtr; name : SysStringPtr; flags := FindNameFlagSet : {}) : TreeNodePtr;
METHOD GetEntry (o : ListtreeObject; node : TreeNodePtr; position : LONGINT; flags := GetEntryFlagSet : {}) : TreeNodePtr;
METHOD GetNr (o : ListtreeObject; treeNode : TreeNodePtr; flags := GetNrFlagSet : {}) : LONGCARD;
METHOD Insert (o : ListtreeObject; name : SysStringPtr; user : ANYPTR;
listNode, prevNode : TreeNodePtr; flags := InsertFlagSet : {}) : TreeNodePtr;
METHOD Move (o : ListtreeObject; oldListNode, oldTreeNode,
newListNode, newTreeNode : TreeNodePtr; flags := MoveFlagSet : {});
METHOD Open (o : ListtreeObject; listNode, treeNode : TreeNodePtr; flags := OpenFlagSet : {});
METHOD Remove (o : ListtreeObject; listNode, treeNode : TreeNodePtr; flags := RemoveFlagSet : {});
METHOD Rename (o : ListtreeObject; treeNode : TreeNodePtr; newName : SysStringPtr; flags := RenameFlagSet : {}) : TreeNodePtr;
METHOD TestPos (o : ListtreeObject; x, y : LONGINT; VAR result : TestPosResult);
METHOD SetDropMark (o : ListtreeObject; entry : LONGINT; values : SetDropMarks);
GROUP
SpecialValueGrp =
closeListNodeRoot, closeListNodeParent,
closeListNodeActive,
closeTreeNodeHead, closeTreeNodeTail,
closeTreeNodeActive, closeTreeNodeAll,
exchangeListNode1Root, exchangeListNode1Active,
exchangeTreeNode1Head, exchangeTreeNode1Tail,
exchangeTreeNode1Active, exchangeListNode2Root,
exchangeListNode2Active, exchangeTreeNode2Head,
exchangeTreeNode2Tail, exchangeTreeNode2Active,
exchangeTreeNode2Up, exchangeTreeNode2Down,
findNameListNodeRoot, findNameListNodeActive,
getEntryListNodeRoot, getEntryListNodeActive,
getEntryPositionHead, getEntryPositionTail,
getEntryPositionActive, getEntryPositionNext,
getEntryPositionPrevious,getEntryPositionParent,
getNrTreeNodeActive,
insertListNodeRoot, insertListNodeActive,
insertPrevNodeHead, insertPrevNodeTail,
insertPrevNodeActive, insertPrevNodeSorted,
moveOldListNodeRoot, moveOldListNodeActive,
moveOldTreeNodeHead, moveOldTreeNodeTail,
moveOldTreeNodeActive,
moveNewListNodeRoot, moveNewListNodeActive,
moveNewTreeNodeHead, moveNewTreeNodeTail,
moveNewTreeNodeActive, moveNewTreeNodeSorted,
openListNodeRoot, openListNodeParent,
openListNodeActive,
openTreeNodeHead, openTreeNodeTail,
openTreeNodeActive, openTreeNodeAll,
removeListNodeRoot, removeListNodeActive,
removeTreeNodeHead, removeTreeNodeTail,
removeTreeNodeActive, removeTreeNodeAll,
renameTreeNodeActive,
setDropMarkEntryNone,
SetDropMarks, DoubleClick,
activeOff, constructHookString,
destructHookString, displayHookDefault,
sortHookHead, sortHookTail,
sortHookLeavesTop, sortHookLeavesMixed,
sortHookLeavesBottom;
FlagGrp =
CloseFlags, CloseFlagSet,
ExchangeFlagSet,
FindNameFlags, FindNameFlagSet,
GetEntryFlags, GetEntryFlagSet,
GetNrFlags, GetNrFlagSet,
InsertFlags, InsertFlagSet,
OpenFlags, OpenFlagSet,
MoveFlags, MoveFlagSet,
RemoveFlags, RemoveFlagSet,
RenameFlags, RenameFlagSet;
MethodGrp =
mListtreeClose, mListtreeExchange,
mListtreeFindName, mListtreeGetEntry,
mListtreeGetNr, mListtreeInsert,
mListtreeMove, mListtreeOpen,
mListtreeRemove, mListtreeRename,
mListtreeSetDropMark, mListtreeTestPos;
TagGrp =
aListtreeActive, aListtreeCloseHook,
aListtreeConstructHook, aListtreeDestructHook,
aListtreeDisplayHook, aListtreeDoubleClick,
aListtreeDragDropSort, aListtreeDuplicateNodeName,
aListtreeEmptyNodes, aListtreeFormat,
aListtreeOpenHook, aListtreeQuiet,
aListtreeSortHook, aListtreeTitle,
aListtreeTreeColumn;
BasicGrp =
MakeListtreeObjectA, MakeListtreeObject,
ListtreeTagAPtr, ListtreeTags,
ListtreeObject, TreeNodePtr;
All = TagGrp, FlagGrp, BasicGrp, SpecialValueGrp;
END MCCListtree.